const { faker } = require('@faker-js/faker');
const bcrypt = require('bcryptjs');

// 生成测试用户数据
const generateUsers = async () => {
  const users = [];
  const password = await bcrypt.hash('Test123!', 10); // 统一密码

  // 生成管理员
  users.push({
    id: faker.string.uuid(),
    email: 'admin@kineticx.com',
    name: '系统管理员',
    password,
    avatar: faker.image.avatar(),
    role: 'admin',
    createdAt: faker.date.past(),
    updatedAt: faker.date.recent()
  });

  // 生成普通用户
  for (let i = 0; i < 9; i++) {
    users.push({
      id: faker.string.uuid(),
      email: faker.internet.email(),
      name: faker.person.fullName(),
      password,
      avatar: faker.image.avatar(),
      role: 'user',
      createdAt: faker.date.past(),
      updatedAt: faker.date.recent()
    });
  }

  return users;
};

// 导出JSON格式数据
const exportJSON = async () => {
  const users = await generateUsers();
  return JSON.stringify(users, null, 2);
};

// 导出Mongoose文档
const exportMongooseDocs = async () => {
  const users = await generateUsers();
  return users.map(user => ({
    ...user,
    _id: user.id,
    __v: 0
  }));
};

module.exports = {
  generateUsers,
  exportJSON,
  exportMongooseDocs
}; 